'use strict';

module.exports = {
    parseMsg(action, payload = {}, metadata = {}) {
        const meta = Object.assign({}, {
            timestamp: Date.now(),
        }, metadata);

        return {
            meta,
            data: {
                action,
                payload,
            },
        };
    },
    success({ ctx, res = null, msg = '成功', code = 200, pagination = {} }) {
        ctx.body = {
            code: code,
            data: res,
            msg,
            ...pagination
        }
        ctx.status = 200
    },
    failure({ ctx, res = null, msg = '失败', code = -1 }) {
        ctx.body = {
                code: code,
                data: res,
                msg
            }
            // ctx.status = 200
    },
    VerifyMobile(mobile) {
        if (!(/^1[3|4|5|6|7|8|9][0-9]\d{8}$/.test(mobile))) {
            return false;
        } else {
            return true
        }
    },
    uuid(len, radix) {
        var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
        var uuid = [],
            i;
        radix = radix || chars.length;

        if (len) {
            // Compact form
            for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
        } else {
            // rfc4122, version 4 form
            var r;

            // rfc4122 requires these characters
            uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
            uuid[14] = '4';

            // Fill in random data.  At i==19 set the high bits of clock sequence as
            // per rfc4122, sec. 4.1.5
            for (i = 0; i < 36; i++) {
                if (!uuid[i]) {
                    r = 0 | Math.random() * 16;
                    uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
                }
            }
        }

        return uuid.join('');
    },
    createCode() {
        let code = "";
        let codeLength = 4; //验证码的长度   
        let random = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); //随机数   
        for (let i = 0; i < codeLength; i++) { //循环操作   
            let index = Math.floor(Math.random() * 9); //取得随机数的索引（0~9）   
            code += random[index]; //根据索引取得随机数加到code上   
        }
        return code; //把code值赋给验证码   
    }

};